<?php

/**
 * Description of PersistenciaUsuario
 *
 * @author Glauco David Laicht
 */
class PersistenciaSetor extends Persistencia {
    
    protected function setRelacionamento() {
        $this->setTabela('tbsetor');
        $this->addRelacionamento('setcodigo','codigo',true,true);        
        $this->addRelacionamento('setnome','nome');
        $this->addRelacionamento('funcodigo','codigoSupervisor');                
    }
    
    public function getListaSetorToManutencao() {
        $aLista  = array();
        $sSelect = "select setcodigo, setnome from ".$this->getTabela()." order by setnome";
        $oQuery  = $this->newQuery($sSelect);  
        $oQuery->execute();
        while ($oRes = $oQuery->fetchObject()) {
            $aLista[] = new Lista($oRes->setcodigo, $oRes->setnome);
        }
        return $aLista;
    }
    
    public function getListaSetorByUsuario(){
        $iTipoAcesso = $this->Principal->getUsuario()->getTipoAcesso();
        $sCondicao = '';
        switch ($iTipoAcesso){
            case PersistenciaFuncionario::TIPO_ACESSO_ADMINISTRADOR:
            case PersistenciaFuncionario::TIPO_ACESSO_RESPONSAVEL_RH:
                $sCondicao .= ' 1 = 1 ';
            break; 
            case PersistenciaFuncionario::TIPO_ACESSO_SUPERVISOR:
                $sCondicao .= ' funcodigo = '.$this->Principal->getUsuario()->getCodigo();
            break;    
            case PersistenciaFuncionario::TIPO_ACESSO_FUNCIONARIO:
                $sCondicao .= ' setcodigo = '.$this->Principal->getUsuario()->getSetor()->getCodigo();
            break;                        
        }        
        $aLista  = array();
        $sSelect = "select setcodigo, setnome from ".$this->getTabela()." where ".$sCondicao." order by setnome";
        $oQuery  = $this->newQuery($sSelect);  
        $oQuery->execute();
        $aLista[] = new Lista(0, 'Todos');
        while ($oRes = $oQuery->fetchObject()) {
            $aLista[] = new Lista($oRes->setcodigo, $oRes->setnome);
        }
        return $aLista;
    }
    
    public function getSqlPadraoConsulta() {
         $sSql = 'select tbsetor.*,
                         tbfuncionario.funnome
                   from tbsetor
                   left join tbfuncionario
                     on tbsetor.funcodigo = tbfuncionario.funcodigo';
        return $sSql;
    }
}

?>
